package com.yangff.api.client.fallback;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yangff.api.client.UserClient;
import com.yangff.entity.user.entity.User;
import com.yangff.entity.user.entity.dto.UserAssetDTO;
import com.yangff.entity.user.entity.dto.UserDTO;
import com.yangff.entity.user.entity.vo.UserAssetVo;
import com.yangff.entity.user.entity.vo.UserVo;
import com.yangff.entity.vo.ResultVo;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.RequestBody;

import java.security.NoSuchAlgorithmException;
import java.util.List;

public class UserClientFallbackFactory implements FallbackFactory {
    @Override
    public UserClient create(Throwable cause) {
        return new UserClient() {

            @Override
            public UserVo saveUser(User user) throws NoSuchAlgorithmException {
                return null;
            }

            @Override
            public List<User> selectUser() {
                return null;
            }

            @Override
            public Page<User> selectUserPage(Pageable pageable) {
                return null;
            }

            @Override
            public UserVo updateUserStatusByAccount(UserDTO userDTO) {
                return null;
            }


            @Override
            public UserVo getUserByAccount(String account) {
                return null;
            }

            @Override
            public ResultVo deleteUserByAccount(String account) {
                return  ResultVo.error();
            }

            @Override
            public UserVo updateUserFluidMoneyByAccount(UserDTO userDTO) {
                return null;
            }

            @Override
            public UserVo updateUserByAccount(UserDTO userDTO) {
                return null;
            }

            @Override
            public UserVo updateUserPassword(UserDTO userDTO) throws NoSuchAlgorithmException {
                return null;
            }

            @Override
            public UserVo updateUserPaymentPassword(UserDTO userDTO) {
                return null;
            }


            @Override
            public List<UserAssetVo> getUserAssetByCode(String code) {
                return null;
            }

            @Override
            public Page<UserAssetVo> getUserAssetByAccount(String account, Pageable pageable) {
                return null;
            }

            @Override
            public UserAssetVo updateUserAssetByCode(UserAssetDTO userAssetDTO) {
                return null;
            }

            @Override
            public UserAssetVo changeUserAssetAmount(UserAssetDTO userAssetDTO) {
                return null;
            }

            @Override
            public List<UserAssetVo> getAllUserAssetByAccount(String account) {
                return null;
            }

            @Override
            public ResultVo deleteUserAssetByCode(String code) {
                return null;
            }


        };
    }
}
